#include<iostream>
#include<vector>
#include<string>
using namespace std;

class Solution {
public:
    void Swap(int& a,int &b){
        int tmp=a;
        a=b;
        b=tmp;
    }

    void rotate(vector< vector<int> >& matrix) {
        int vec_len = matrix.size();
        // 沿正对角线翻转
        for(int i=0;i<vec_len;i++){
            for(int j=0;j<i;j++){
                Swap(matrix[i][j],matrix[j][i]);
            }
        }
        // 左右水平翻转
        for(int i=0;i<vec_len;i++){
            for(int j=0;j<vec_len/2;j++){
                Swap(matrix[i][j],matrix[i][vec_len-j-1]);
            }
        }
    }
};

int main(){
    vector< vector<int> > matrix;
    int num=1;
    for(int i=1;i<=3;i++){
        vector<int> a;
        for(int j=1;j<=3;j++){
            a.push_back(num++);
        }
        matrix.push_back(a);
    }
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++) {
            cout<<matrix[i][j]<<" ";
        }
        cout<<"\n";
    }

    Solution solu;
    solu.rotate(matrix);

    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++) {
            cout<<matrix[i][j]<<" ";
        }
        cout<<"\n";
    }
    return 0;
}